Modern computer systems often have a multitude of components which operate in conjunction to provide the computing power of the system. However, as computing power of such systems has increased, so too has the overall power consumption and heat generation of the systems. This is especially true in those computer systems specifically designed to run highly intensive workloads, which often result in high levels of power consumed by the system and high operating temperatures. Such extreme conditions may cause the system to malfunction or even incur permanent damage if the power consumed or thermal response gets too high. Thus, most modern computer systems generally require robust thermal design to dissipate the generated heat from the system. It is therefore often necessary during the design or manufacturing of the computer system, to simulate or expose the system to extreme conditions so that any potential issues related to power consumption and high temperature generation which may damage the system are identified before deployment of the computer system.
One common approach to exposing the computer system to extreme power consumption and high thermal values is to operate several functional units within the system concurrently. From an operating system level, this can be achieved by having multiple software algorithms executing in parallel, each targeting a different functional unit to stress that unit to a full extent. However, the task of maximizing stress on multiple components of the system concurrently is not always straight forward. One of the many hurdles is that algorithms working on individual components in the system often interfere with each other due to the interdependence of the components within the system. As a result, when multiple components are targeted concurrently, the power consumption and thermal effect are not necessarily at the maximum for the individual components of the system. In other words, when the computer system is placed under high stress during testing or simulation, the sum total of the power consumed by individual components is generally more than the total system power consumption when these same components are stressed concurrently. This variance in measurable power consumption and thermal response is due to the interdependence of the computer system components when several algorithms are executed concurrently.
To further illustrate this problem, consider two components of a typical computer system; a cache component and a memory component. Power consumed by cache is typically maximized during testing by accessing large portions of the cache in the least time possible and in a sustained manner. Generally, accesses to the cache can be in the form of read and write access using specific data patterns. Similarly, the power consumed by memory is typically maximized by accessing a large number of memory DIMMs and cells of the memory component in the least time possible and in a sustained way. However, when algorithms to stress both memory and cache are executed at the same time, the time available for testing is split across accessing both components together, thus reducing the access bandwidth to individual components as compared to when the entire time is dedicated to testing a single component. Also, all cache accesses may not propagate to memory, thus diluting the stress placed on memory components. In other words, the read and write instructions used to test the memory component will often take more time to complete as the instructions used to test the cache component are executed in parallel. The instructions to stress the cache component will be similarly delayed as the memory component instructions are executed concurrently. As a result, the power and temperature measurements of both the cache and memory components when concurrently targeted is generally lower than when each component is stressed individually. Such interference due to the interdependence of system components is generally applicable across the system architecture when multiples of such components are stressed concurrently.